// 题目来源：


// DFS搜索 排序

#include <bits/stdc++.h>
using namespace std;
int n, k, x;
vector<string> S;
vector<string> ans;
void BFS()
{

  queue<pair<string, int>> Q;
  Q.push({"", 0});

  while (!Q.empty())
  {

    string        s;
    int step;
    tie(s, step) = Q.front();
    Q.pop();

    if (step > k)
    {
      break;
    }

    if (step == k)
    {
      ans.push_back(s);
    }

    for (int i = 0; i < n; i++)
    {
      Q.push({s + S[i], step + 1});
    }
  }
}

int main()
{
  cin >> n >> k >> x;
  S.resize(n);
  for (int i = 0; i < n; i++)
  {
    cin >> S[i];
  }
  BFS();
  sort(ans.begin(), ans.end());
  cout << ans[x - 1] << endl;
  return 0;
}
